//-------------------------------------------------------------------------------------------------------
// Copyright (C) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
//-------------------------------------------------------------------------------------------------------

function write(v) { WScript.Echo(v + ""); }

function foo() {}

write(+0.0 >> '');
write(+0.0 >> 0xa);
write(+0.0 >> 04);
write(+0.0 >> 'hello');
write(+0.0 >> 'hel' + 'lo');
write(+0.0 >> String(''));
write(+0.0 >> String('hello'));
write(+0.0 >> String('h' + 'ello'));
write(+0.0 >> new String(''));
write(+0.0 >> new String('hello'));
write(+0.0 >> new String('he' + 'llo'));
write(+0.0 >> new Object());
write(+0.0 >> new Object());
write(+0.0 >> [1, 2, 3]);
write(+0.0 >> [1 ,2 , 3]);
write(+0.0 >> new Array(3));
write(+0.0 >> Array(3));
write(+0.0 >> new Array(1 ,2 ,3));
write(+0.0 >> Array(1));
write(+0.0 >> foo);
write(1 >> undefined);
write(1 >> null);
write(1 >> true);
write(1 >> false);
write(1 >> Boolean(true));
write(1 >> Boolean(false));
write(1 >> new Boolean(true));
write(1 >> new Boolean(false));
write(1 >> NaN);
write(1 >> +0);
write(1 >> -0);
write(1 >> 0);
write(1 >> 0.0);
write(1 >> -0.0);
write(1 >> +0.0);
write(1 >> 1);
write(1 >> 10);
write(1 >> 10.0);
write(1 >> 10.1);
write(1 >> -1);
write(1 >> -10);
write(1 >> -10.0);
write(1 >> -10.1);
write(1 >> Number.MAX_VALUE);
write(1 >> Number.MIN_VALUE);
write(1 >> Number.NaN);
write(1 >> Number.POSITIVE_INFINITY);
write(1 >> Number.NEGATIVE_INFINITY);
write(1 >> new Number(NaN));
write(1 >> new Number(+0));
write(1 >> new Number(-0));
write(1 >> new Number(0));
write(1 >> new Number(0.0));
write(1 >> new Number(-0.0));
write(1 >> new Number(+0.0));
write(1 >> new Number(1));
write(1 >> new Number(10));
write(1 >> new Number(10.0));
write(1 >> new Number(10.1));
write(1 >> new Number(-1));
write(1 >> new Number(-10));
write(1 >> new Number(-10.0));
write(1 >> new Number(-10.1));
write(1 >> new Number(Number.MAX_VALUE));
write(1 >> new Number(Number.MIN_VALUE));
write(1 >> new Number(Number.NaN));
write(1 >> new Number(Number.POSITIVE_INFINITY));
write(1 >> new Number(Number.NEGATIVE_INFINITY));
write(1 >> '');
write(1 >> 0xa);
write(1 >> 04);
write(1 >> 'hello');
write(1 >> 'hel' + 'lo');
write(1 >> String(''));
write(1 >> String('hello'));
write(1 >> String('h' + 'ello'));
write(1 >> new String(''));
write(1 >> new String('hello'));
write(1 >> new String('he' + 'llo'));
write(1 >> new Object());
write(1 >> new Object());
write(1 >> [1, 2, 3]);
write(1 >> [1 ,2 , 3]);
write(1 >> new Array(3));
write(1 >> Array(3));
write(1 >> new Array(1 ,2 ,3));
write(1 >> Array(1));
write(1 >> foo);
write(10 >> undefined);
write(10 >> null);
write(10 >> true);
write(10 >> false);
write(10 >> Boolean(true));
write(10 >> Boolean(false));
write(10 >> new Boolean(true));
write(10 >> new Boolean(false));
write(10 >> NaN);
write(10 >> +0);
write(10 >> -0);
write(10 >> 0);
write(10 >> 0.0);
write(10 >> -0.0);
write(10 >> +0.0);
write(10 >> 1);
write(10 >> 10);
write(10 >> 10.0);
write(10 >> 10.1);
write(10 >> -1);
write(10 >> -10);
write(10 >> -10.0);
write(10 >> -10.1);
write(10 >> Number.MAX_VALUE);
write(10 >> Number.MIN_VALUE);
write(10 >> Number.NaN);
write(10 >> Number.POSITIVE_INFINITY);
write(10 >> Number.NEGATIVE_INFINITY);
write(10 >> new Number(NaN));
write(10 >> new Number(+0));
write(10 >> new Number(-0));
write(10 >> new Number(0));
write(10 >> new Number(0.0));
write(10 >> new Number(-0.0));
write(10 >> new Number(+0.0));
write(10 >> new Number(1));
write(10 >> new Number(10));
write(10 >> new Number(10.0));
write(10 >> new Number(10.1));
write(10 >> new Number(-1));
write(10 >> new Number(-10));
write(10 >> new Number(-10.0));
write(10 >> new Number(-10.1));
write(10 >> new Number(Number.MAX_VALUE));
write(10 >> new Number(Number.MIN_VALUE));
write(10 >> new Number(Number.NaN));
write(10 >> new Number(Number.POSITIVE_INFINITY));
write(10 >> new Number(Number.NEGATIVE_INFINITY));
write(10 >> '');
write(10 >> 0xa);
write(10 >> 04);
write(10 >> 'hello');
write(10 >> 'hel' + 'lo');
write(10 >> String(''));
write(10 >> String('hello'));
write(10 >> String('h' + 'ello'));
write(10 >> new String(''));
write(10 >> new String('hello'));
write(10 >> new String('he' + 'llo'));
write(10 >> new Object());
write(10 >> new Object());
write(10 >> [1, 2, 3]);
write(10 >> [1 ,2 , 3]);
write(10 >> new Array(3));
write(10 >> Array(3));
write(10 >> new Array(1 ,2 ,3));
write(10 >> Array(1));
write(10 >> foo);
write(10.0 >> undefined);
write(10.0 >> null);
write(10.0 >> true);
write(10.0 >> false);
write(10.0 >> Boolean(true));
write(10.0 >> Boolean(false));
write(10.0 >> new Boolean(true));
write(10.0 >> new Boolean(false));
write(10.0 >> NaN);
write(10.0 >> +0);
write(10.0 >> -0);
write(10.0 >> 0);
write(10.0 >> 0.0);
write(10.0 >> -0.0);
write(10.0 >> +0.0);
write(10.0 >> 1);
write(10.0 >> 10);
write(10.0 >> 10.0);
write(10.0 >> 10.1);
write(10.0 >> -1);
write(10.0 >> -10);
write(10.0 >> -10.0);
write(10.0 >> -10.1);
write(10.0 >> Number.MAX_VALUE);
write(10.0 >> Number.MIN_VALUE);
write(10.0 >> Number.NaN);
write(10.0 >> Number.POSITIVE_INFINITY);
write(10.0 >> Number.NEGATIVE_INFINITY);
write(10.0 >> new Number(NaN));
write(10.0 >> new Number(+0));
write(10.0 >> new Number(-0));
write(10.0 >> new Number(0));
write(10.0 >> new Number(0.0));
write(10.0 >> new Number(-0.0));
write(10.0 >> new Number(+0.0));
write(10.0 >> new Number(1));
write(10.0 >> new Number(10));
write(10.0 >> new Number(10.0));
write(10.0 >> new Number(10.1));
write(10.0 >> new Number(-1));
write(10.0 >> new Number(-10));
write(10.0 >> new Number(-10.0));
write(10.0 >> new Number(-10.1));
write(10.0 >> new Number(Number.MAX_VALUE));
write(10.0 >> new Number(Number.MIN_VALUE));
write(10.0 >> new Number(Number.NaN));
write(10.0 >> new Number(Number.POSITIVE_INFINITY));
write(10.0 >> new Number(Number.NEGATIVE_INFINITY));
write(10.0 >> '');
write(10.0 >> 0xa);
write(10.0 >> 04);
write(10.0 >> 'hello');
write(10.0 >> 'hel' + 'lo');
write(10.0 >> String(''));
write(10.0 >> String('hello'));
write(10.0 >> String('h' + 'ello'));
write(10.0 >> new String(''));
write(10.0 >> new String('hello'));
write(10.0 >> new String('he' + 'llo'));
write(10.0 >> new Object());
write(10.0 >> new Object());
write(10.0 >> [1, 2, 3]);
write(10.0 >> [1 ,2 , 3]);
write(10.0 >> new Array(3));
write(10.0 >> Array(3));
write(10.0 >> new Array(1 ,2 ,3));
write(10.0 >> Array(1));
write(10.0 >> foo);
write(10.1 >> undefined);
write(10.1 >> null);
write(10.1 >> true);
write(10.1 >> false);
write(10.1 >> Boolean(true));
write(10.1 >> Boolean(false));
write(10.1 >> new Boolean(true));
write(10.1 >> new Boolean(false));
write(10.1 >> NaN);
write(10.1 >> +0);
write(10.1 >> -0);
write(10.1 >> 0);
write(10.1 >> 0.0);
write(10.1 >> -0.0);
write(10.1 >> +0.0);
write(10.1 >> 1);
write(10.1 >> 10);
write(10.1 >> 10.0);
write(10.1 >> 10.1);
write(10.1 >> -1);
write(10.1 >> -10);
write(10.1 >> -10.0);
write(10.1 >> -10.1);
write(10.1 >> Number.MAX_VALUE);
write(10.1 >> Number.MIN_VALUE);
write(10.1 >> Number.NaN);
write(10.1 >> Number.POSITIVE_INFINITY);
write(10.1 >> Number.NEGATIVE_INFINITY);
write(10.1 >> new Number(NaN));
write(10.1 >> new Number(+0));
write(10.1 >> new Number(-0));
write(10.1 >> new Number(0));
write(10.1 >> new Number(0.0));
write(10.1 >> new Number(-0.0));
write(10.1 >> new Number(+0.0));
write(10.1 >> new Number(1));
write(10.1 >> new Number(10));
write(10.1 >> new Number(10.0));
write(10.1 >> new Number(10.1));
write(10.1 >> new Number(-1));
write(10.1 >> new Number(-10));
write(10.1 >> new Number(-10.0));
write(10.1 >> new Number(-10.1));
write(10.1 >> new Number(Number.MAX_VALUE));
write(10.1 >> new Number(Number.MIN_VALUE));
write(10.1 >> new Number(Number.NaN));
write(10.1 >> new Number(Number.POSITIVE_INFINITY));
write(10.1 >> new Number(Number.NEGATIVE_INFINITY));
write(10.1 >> '');
write(10.1 >> 0xa);
write(10.1 >> 04);
write(10.1 >> 'hello');
write(10.1 >> 'hel' + 'lo');
write(10.1 >> String(''));
write(10.1 >> String('hello'));
write(10.1 >> String('h' + 'ello'));
write(10.1 >> new String(''));
write(10.1 >> new String('hello'));
write(10.1 >> new String('he' + 'llo'));
write(10.1 >> new Object());
write(10.1 >> new Object());
write(10.1 >> [1, 2, 3]);
write(10.1 >> [1 ,2 , 3]);
write(10.1 >> new Array(3));
write(10.1 >> Array(3));
write(10.1 >> new Array(1 ,2 ,3));
write(10.1 >> Array(1));
write(10.1 >> foo);
write(-1 >> undefined);
write(-1 >> null);
write(-1 >> true);
write(-1 >> false);
write(-1 >> Boolean(true));
write(-1 >> Boolean(false));
write(-1 >> new Boolean(true));
write(-1 >> new Boolean(false));
write(-1 >> NaN);
write(-1 >> +0);
write(-1 >> -0);
write(-1 >> 0);
write(-1 >> 0.0);
write(-1 >> -0.0);
write(-1 >> +0.0);
write(-1 >> 1);
write(-1 >> 10);
write(-1 >> 10.0);
write(-1 >> 10.1);
write(-1 >> -1);
write(-1 >> -10);
write(-1 >> -10.0);
write(-1 >> -10.1);
write(-1 >> Number.MAX_VALUE);
write(-1 >> Number.MIN_VALUE);
write(-1 >> Number.NaN);
write(-1 >> Number.POSITIVE_INFINITY);
write(-1 >> Number.NEGATIVE_INFINITY);
write(-1 >> new Number(NaN));
write(-1 >> new Number(+0));
write(-1 >> new Number(-0));
write(-1 >> new Number(0));
write(-1 >> new Number(0.0));
write(-1 >> new Number(-0.0));
write(-1 >> new Number(+0.0));
write(-1 >> new Number(1));
write(-1 >> new Number(10));
write(-1 >> new Number(10.0));
write(-1 >> new Number(10.1));
write(-1 >> new Number(-1));
write(-1 >> new Number(-10));
write(-1 >> new Number(-10.0));
write(-1 >> new Number(-10.1));
write(-1 >> new Number(Number.MAX_VALUE));
write(-1 >> new Number(Number.MIN_VALUE));
write(-1 >> new Number(Number.NaN));
write(-1 >> new Number(Number.POSITIVE_INFINITY));
write(-1 >> new Number(Number.NEGATIVE_INFINITY));
write(-1 >> '');
write(-1 >> 0xa);
write(-1 >> 04);
write(-1 >> 'hello');
write(-1 >> 'hel' + 'lo');
write(-1 >> String(''));
write(-1 >> String('hello'));
write(-1 >> String('h' + 'ello'));
write(-1 >> new String(''));
write(-1 >> new String('hello'));
write(-1 >> new String('he' + 'llo'));
write(-1 >> new Object());
write(-1 >> new Object());
write(-1 >> [1, 2, 3]);
write(-1 >> [1 ,2 , 3]);
write(-1 >> new Array(3));
write(-1 >> Array(3));
write(-1 >> new Array(1 ,2 ,3));
write(-1 >> Array(1));
write(-1 >> foo);
write(-10 >> undefined);
write(-10 >> null);
write(-10 >> true);
write(-10 >> false);
write(-10 >> Boolean(true));
write(-10 >> Boolean(false));
write(-10 >> new Boolean(true));
write(-10 >> new Boolean(false));
write(-10 >> NaN);
write(-10 >> +0);
write(-10 >> -0);
write(-10 >> 0);
write(-10 >> 0.0);
write(-10 >> -0.0);
write(-10 >> +0.0);
write(-10 >> 1);
write(-10 >> 10);
write(-10 >> 10.0);
write(-10 >> 10.1);
write(-10 >> -1);
write(-10 >> -10);
write(-10 >> -10.0);
write(-10 >> -10.1);
write(-10 >> Number.MAX_VALUE);
write(-10 >> Number.MIN_VALUE);
write(-10 >> Number.NaN);
write(-10 >> Number.POSITIVE_INFINITY);
write(-10 >> Number.NEGATIVE_INFINITY);
write(-10 >> new Number(NaN));
write(-10 >> new Number(+0));
write(-10 >> new Number(-0));
write(-10 >> new Number(0));
write(-10 >> new Number(0.0));
write(-10 >> new Number(-0.0));
write(-10 >> new Number(+0.0));
write(-10 >> new Number(1));
write(-10 >> new Number(10));
write(-10 >> new Number(10.0));
write(-10 >> new Number(10.1));
write(-10 >> new Number(-1));
write(-10 >> new Number(-10));
write(-10 >> new Number(-10.0));
write(-10 >> new Number(-10.1));
write(-10 >> new Number(Number.MAX_VALUE));
write(-10 >> new Number(Number.MIN_VALUE));
write(-10 >> new Number(Number.NaN));
write(-10 >> new Number(Number.POSITIVE_INFINITY));
write(-10 >> new Number(Number.NEGATIVE_INFINITY));
write(-10 >> '');
write(-10 >> 0xa);
write(-10 >> 04);
write(-10 >> 'hello');
write(-10 >> 'hel' + 'lo');
write(-10 >> String(''));
write(-10 >> String('hello'));
write(-10 >> String('h' + 'ello'));
write(-10 >> new String(''));
write(-10 >> new String('hello'));
write(-10 >> new String('he' + 'llo'));
write(-10 >> new Object());
write(-10 >> new Object());
write(-10 >> [1, 2, 3]);
write(-10 >> [1 ,2 , 3]);
write(-10 >> new Array(3));
write(-10 >> Array(3));
write(-10 >> new Array(1 ,2 ,3));
write(-10 >> Array(1));
write(-10 >> foo);
write(-10.0 >> undefined);
write(-10.0 >> null);
write(-10.0 >> true);
write(-10.0 >> false);
write(-10.0 >> Boolean(true));
write(-10.0 >> Boolean(false));
write(-10.0 >> new Boolean(true));
write(-10.0 >> new Boolean(false));
write(-10.0 >> NaN);
write(-10.0 >> +0);
write(-10.0 >> -0);
write(-10.0 >> 0);
write(-10.0 >> 0.0);
write(-10.0 >> -0.0);
write(-10.0 >> +0.0);
write(-10.0 >> 1);
write(-10.0 >> 10);
write(-10.0 >> 10.0);
write(-10.0 >> 10.1);
write(-10.0 >> -1);
write(-10.0 >> -10);
write(-10.0 >> -10.0);
write(-10.0 >> -10.1);
write(-10.0 >> Number.MAX_VALUE);
write(-10.0 >> Number.MIN_VALUE);
write(-10.0 >> Number.NaN);
write(-10.0 >> Number.POSITIVE_INFINITY);
write(-10.0 >> Number.NEGATIVE_INFINITY);
write(-10.0 >> new Number(NaN));
write(-10.0 >> new Number(+0));
write(-10.0 >> new Number(-0));
write(-10.0 >> new Number(0));
write(-10.0 >> new Number(0.0));
write(-10.0 >> new Number(-0.0));
write(-10.0 >> new Number(+0.0));
write(-10.0 >> new Number(1));
write(-10.0 >> new Number(10));
write(-10.0 >> new Number(10.0));
write(-10.0 >> new Number(10.1));
write(-10.0 >> new Number(-1));
write(-10.0 >> new Number(-10));
write(-10.0 >> new Number(-10.0));
write(-10.0 >> new Number(-10.1));
write(-10.0 >> new Number(Number.MAX_VALUE));
write(-10.0 >> new Number(Number.MIN_VALUE));
write(-10.0 >> new Number(Number.NaN));
write(-10.0 >> new Number(Number.POSITIVE_INFINITY));
write(-10.0 >> new Number(Number.NEGATIVE_INFINITY));
write(-10.0 >> '');
write(-10.0 >> 0xa);
write(-10.0 >> 04);
write(-10.0 >> 'hello');
write(-10.0 >> 'hel' + 'lo');
write(-10.0 >> String(''));
write(-10.0 >> String('hello'));
write(-10.0 >> String('h' + 'ello'));
write(-10.0 >> new String(''));
write(-10.0 >> new String('hello'));
write(-10.0 >> new String('he' + 'llo'));
write(-10.0 >> new Object());
write(-10.0 >> new Object());
write(-10.0 >> [1, 2, 3]);
write(-10.0 >> [1 ,2 , 3]);
write(-10.0 >> new Array(3));
write(-10.0 >> Array(3));
write(-10.0 >> new Array(1 ,2 ,3));
write(-10.0 >> Array(1));
write(-10.0 >> foo);
write(-10.1 >> undefined);
write(-10.1 >> null);
write(-10.1 >> true);
write(-10.1 >> false);
write(-10.1 >> Boolean(true));
write(-10.1 >> Boolean(false));
write(-10.1 >> new Boolean(true));
write(-10.1 >> new Boolean(false));
write(-10.1 >> NaN);
write(-10.1 >> +0);
write(-10.1 >> -0);
write(-10.1 >> 0);
write(-10.1 >> 0.0);
write(-10.1 >> -0.0);
write(-10.1 >> +0.0);
write(-10.1 >> 1);
write(-10.1 >> 10);
write(-10.1 >> 10.0);
write(-10.1 >> 10.1);
write(-10.1 >> -1);
write(-10.1 >> -10);
write(-10.1 >> -10.0);
write(-10.1 >> -10.1);
write(-10.1 >> Number.MAX_VALUE);
write(-10.1 >> Number.MIN_VALUE);
write(-10.1 >> Number.NaN);
write(-10.1 >> Number.POSITIVE_INFINITY);
write(-10.1 >> Number.NEGATIVE_INFINITY);
write(-10.1 >> new Number(NaN));
write(-10.1 >> new Number(+0));
write(-10.1 >> new Number(-0));
write(-10.1 >> new Number(0));
write(-10.1 >> new Number(0.0));
write(-10.1 >> new Number(-0.0));
write(-10.1 >> new Number(+0.0));
write(-10.1 >> new Number(1));
write(-10.1 >> new Number(10));
write(-10.1 >> new Number(10.0));
write(-10.1 >> new Number(10.1));
write(-10.1 >> new Number(-1));
write(-10.1 >> new Number(-10));
write(-10.1 >> new Number(-10.0));
write(-10.1 >> new Number(-10.1));
write(-10.1 >> new Number(Number.MAX_VALUE));
write(-10.1 >> new Number(Number.MIN_VALUE));
write(-10.1 >> new Number(Number.NaN));
write(-10.1 >> new Number(Number.POSITIVE_INFINITY));
write(-10.1 >> new Number(Number.NEGATIVE_INFINITY));
write(-10.1 >> '');
write(-10.1 >> 0xa);
write(-10.1 >> 04);
write(-10.1 >> 'hello');
write(-10.1 >> 'hel' + 'lo');
write(-10.1 >> String(''));
write(-10.1 >> String('hello'));
write(-10.1 >> String('h' + 'ello'));
write(-10.1 >> new String(''));
write(-10.1 >> new String('hello'));
write(-10.1 >> new String('he' + 'llo'));
write(-10.1 >> new Object());
write(-10.1 >> new Object());
write(-10.1 >> [1, 2, 3]);
write(-10.1 >> [1 ,2 , 3]);
write(-10.1 >> new Array(3));
write(-10.1 >> Array(3));
write(-10.1 >> new Array(1 ,2 ,3));
write(-10.1 >> Array(1));
write(-10.1 >> foo);
write(Number.MAX_VALUE >> undefined);
write(Number.MAX_VALUE >> null);
write(Number.MAX_VALUE >> true);
write(Number.MAX_VALUE >> false);
write(Number.MAX_VALUE >> Boolean(true));
write(Number.MAX_VALUE >> Boolean(false));
write(Number.MAX_VALUE >> new Boolean(true));
write(Number.MAX_VALUE >> new Boolean(false));
write(Number.MAX_VALUE >> NaN);
write(Number.MAX_VALUE >> +0);
write(Number.MAX_VALUE >> -0);
write(Number.MAX_VALUE >> 0);
write(Number.MAX_VALUE >> 0.0);
write(Number.MAX_VALUE >> -0.0);
write(Number.MAX_VALUE >> +0.0);
write(Number.MAX_VALUE >> 1);
write(Number.MAX_VALUE >> 10);
write(Number.MAX_VALUE >> 10.0);
write(Number.MAX_VALUE >> 10.1);
write(Number.MAX_VALUE >> -1);
write(Number.MAX_VALUE >> -10);
write(Number.MAX_VALUE >> -10.0);
write(Number.MAX_VALUE >> -10.1);
write(Number.MAX_VALUE >> Number.MAX_VALUE);
write(Number.MAX_VALUE >> Number.MIN_VALUE);
write(Number.MAX_VALUE >> Number.NaN);
write(Number.MAX_VALUE >> Number.POSITIVE_INFINITY);
write(Number.MAX_VALUE >> Number.NEGATIVE_INFINITY);
write(Number.MAX_VALUE >> new Number(NaN));
write(Number.MAX_VALUE >> new Number(+0));
write(Number.MAX_VALUE >> new Number(-0));
write(Number.MAX_VALUE >> new Number(0));
write(Number.MAX_VALUE >> new Number(0.0));
write(Number.MAX_VALUE >> new Number(-0.0));
write(Number.MAX_VALUE >> new Number(+0.0));
write(Number.MAX_VALUE >> new Number(1));
write(Number.MAX_VALUE >> new Number(10));
write(Number.MAX_VALUE >> new Number(10.0));
write(Number.MAX_VALUE >> new Number(10.1));
write(Number.MAX_VALUE >> new Number(-1));
write(Number.MAX_VALUE >> new Number(-10));
write(Number.MAX_VALUE >> new Number(-10.0));
write(Number.MAX_VALUE >> new Number(-10.1));
write(Number.MAX_VALUE >> new Number(Number.MAX_VALUE));
write(Number.MAX_VALUE >> new Number(Number.MIN_VALUE));
write(Number.MAX_VALUE >> new Number(Number.NaN));
write(Number.MAX_VALUE >> new Number(Number.POSITIVE_INFINITY));
write(Number.MAX_VALUE >> new Number(Number.NEGATIVE_INFINITY));
write(Number.MAX_VALUE >> '');
write(Number.MAX_VALUE >> 0xa);
write(Number.MAX_VALUE >> 04);
write(Number.MAX_VALUE >> 'hello');
write(Number.MAX_VALUE >> 'hel' + 'lo');
write(Number.MAX_VALUE >> String(''));
write(Number.MAX_VALUE >> String('hello'));
write(Number.MAX_VALUE >> String('h' + 'ello'));
write(Number.MAX_VALUE >> new String(''));
write(Number.MAX_VALUE >> new String('hello'));
write(Number.MAX_VALUE >> new String('he' + 'llo'));
write(Number.MAX_VALUE >> new Object());
write(Number.MAX_VALUE >> new Object());
write(Number.MAX_VALUE >> [1, 2, 3]);
write(Number.MAX_VALUE >> [1 ,2 , 3]);
write(Number.MAX_VALUE >> new Array(3));
write(Number.MAX_VALUE >> Array(3));
write(Number.MAX_VALUE >> new Array(1 ,2 ,3));
write(Number.MAX_VALUE >> Array(1));
write(Number.MAX_VALUE >> foo);
write(Number.MIN_VALUE >> undefined);
write(Number.MIN_VALUE >> null);
write(Number.MIN_VALUE >> true);
write(Number.MIN_VALUE >> false);
write(Number.MIN_VALUE >> Boolean(true));
write(Number.MIN_VALUE >> Boolean(false));
write(Number.MIN_VALUE >> new Boolean(true));
write(Number.MIN_VALUE >> new Boolean(false));
write(Number.MIN_VALUE >> NaN);
write(Number.MIN_VALUE >> +0);
write(Number.MIN_VALUE >> -0);
write(Number.MIN_VALUE >> 0);
write(Number.MIN_VALUE >> 0.0);
write(Number.MIN_VALUE >> -0.0);
write(Number.MIN_VALUE >> +0.0);
write(Number.MIN_VALUE >> 1);
write(Number.MIN_VALUE >> 10);
write(Number.MIN_VALUE >> 10.0);
write(Number.MIN_VALUE >> 10.1);
write(Number.MIN_VALUE >> -1);
write(Number.MIN_VALUE >> -10);
write(Number.MIN_VALUE >> -10.0);
write(Number.MIN_VALUE >> -10.1);
write(Number.MIN_VALUE >> Number.MAX_VALUE);
write(Number.MIN_VALUE >> Number.MIN_VALUE);
write(Number.MIN_VALUE >> Number.NaN);
write(Number.MIN_VALUE >> Number.POSITIVE_INFINITY);
write(Number.MIN_VALUE >> Number.NEGATIVE_INFINITY);
write(Number.MIN_VALUE >> new Number(NaN));
write(Number.MIN_VALUE >> new Number(+0));
write(Number.MIN_VALUE >> new Number(-0));
write(Number.MIN_VALUE >> new Number(0));
write(Number.MIN_VALUE >> new Number(0.0));
write(Number.MIN_VALUE >> new Number(-0.0));
write(Number.MIN_VALUE >> new Number(+0.0));
write(Number.MIN_VALUE >> new Number(1));
write(Number.MIN_VALUE >> new Number(10));
write(Number.MIN_VALUE >> new Number(10.0));
write(Number.MIN_VALUE >> new Number(10.1));
write(Number.MIN_VALUE >> new Number(-1));
write(Number.MIN_VALUE >> new Number(-10));
write(Number.MIN_VALUE >> new Number(-10.0));
write(Number.MIN_VALUE >> new Number(-10.1));
write(Number.MIN_VALUE >> new Number(Number.MAX_VALUE));
write(Number.MIN_VALUE >> new Number(Number.MIN_VALUE));
write(Number.MIN_VALUE >> new Number(Number.NaN));
write(Number.MIN_VALUE >> new Number(Number.POSITIVE_INFINITY));
write(Number.MIN_VALUE >> new Number(Number.NEGATIVE_INFINITY));
write(Number.MIN_VALUE >> '');
write(Number.MIN_VALUE >> 0xa);
write(Number.MIN_VALUE >> 04);
write(Number.MIN_VALUE >> 'hello');
write(Number.MIN_VALUE >> 'hel' + 'lo');
write(Number.MIN_VALUE >> String(''));
write(Number.MIN_VALUE >> String('hello'));
write(Number.MIN_VALUE >> String('h' + 'ello'));
write(Number.MIN_VALUE >> new String(''));
write(Number.MIN_VALUE >> new String('hello'));
write(Number.MIN_VALUE >> new String('he' + 'llo'));
write(Number.MIN_VALUE >> new Object());
write(Number.MIN_VALUE >> new Object());
write(Number.MIN_VALUE >> [1, 2, 3]);
write(Number.MIN_VALUE >> [1 ,2 , 3]);
write(Number.MIN_VALUE >> new Array(3));
write(Number.MIN_VALUE >> Array(3));
write(Number.MIN_VALUE >> new Array(1 ,2 ,3));
write(Number.MIN_VALUE >> Array(1));
write(Number.MIN_VALUE >> foo);
write(Number.NaN >> undefined);
write(Number.NaN >> null);
write(Number.NaN >> true);
write(Number.NaN >> false);
write(Number.NaN >> Boolean(true));
write(Number.NaN >> Boolean(false));
write(Number.NaN >> new Boolean(true));
write(Number.NaN >> new Boolean(false));
write(Number.NaN >> NaN);
write(Number.NaN >> +0);
write(Number.NaN >> -0);
write(Number.NaN >> 0);
write(Number.NaN >> 0.0);
write(Number.NaN >> -0.0);
write(Number.NaN >> +0.0);
write(Number.NaN >> 1);
write(Number.NaN >> 10);
write(Number.NaN >> 10.0);
write(Number.NaN >> 10.1);
write(Number.NaN >> -1);
write(Number.NaN >> -10);
write(Number.NaN >> -10.0);
write(Number.NaN >> -10.1);
write(Number.NaN >> Number.MAX_VALUE);
write(Number.NaN >> Number.MIN_VALUE);
write(Number.NaN >> Number.NaN);
write(Number.NaN >> Number.POSITIVE_INFINITY);
write(Number.NaN >> Number.NEGATIVE_INFINITY);
write(Number.NaN >> new Number(NaN));
write(Number.NaN >> new Number(+0));
write(Number.NaN >> new Number(-0));
write(Number.NaN >> new Number(0));
write(Number.NaN >> new Number(0.0));
write(Number.NaN >> new Number(-0.0));
write(Number.NaN >> new Number(+0.0));
write(Number.NaN >> new Number(1));
write(Number.NaN >> new Number(10));
write(Number.NaN >> new Number(10.0));
write(Number.NaN >> new Number(10.1));
write(Number.NaN >> new Number(-1));
write(Number.NaN >> new Number(-10));
write(Number.NaN >> new Number(-10.0));
write(Number.NaN >> new Number(-10.1));
write(Number.NaN >> new Number(Number.MAX_VALUE));
write(Number.NaN >> new Number(Number.MIN_VALUE));
write(Number.NaN >> new Number(Number.NaN));
write(Number.NaN >> new Number(Number.POSITIVE_INFINITY));
write(Number.NaN >> new Number(Number.NEGATIVE_INFINITY));
write(Number.NaN >> '');
write(Number.NaN >> 0xa);
write(Number.NaN >> 04);
write(Number.NaN >> 'hello');
write(Number.NaN >> 'hel' + 'lo');
write(Number.NaN >> String(''));
write(Number.NaN >> String('hello'));
write(Number.NaN >> String('h' + 'ello'));
write(Number.NaN >> new String(''));
write(Number.NaN >> new String('hello'));
write(Number.NaN >> new String('he' + 'llo'));
write(Number.NaN >> new Object());
write(Number.NaN >> new Object());
write(Number.NaN >> [1, 2, 3]);
write(Number.NaN >> [1 ,2 , 3]);
write(Number.NaN >> new Array(3));
write(Number.NaN >> Array(3));
write(Number.NaN >> new Array(1 ,2 ,3));
write(Number.NaN >> Array(1));
write(Number.NaN >> foo);
write(Number.POSITIVE_INFINITY >> undefined);
write(Number.POSITIVE_INFINITY >> null);
write(Number.POSITIVE_INFINITY >> true);
write(Number.POSITIVE_INFINITY >> false);
write(Number.POSITIVE_INFINITY >> Boolean(true));
write(Number.POSITIVE_INFINITY >> Boolean(false));
write(Number.POSITIVE_INFINITY >> new Boolean(true));
write(Number.POSITIVE_INFINITY >> new Boolean(false));
write(Number.POSITIVE_INFINITY >> NaN);
write(Number.POSITIVE_INFINITY >> +0);
write(Number.POSITIVE_INFINITY >> -0);
write(Number.POSITIVE_INFINITY >> 0);
write(Number.POSITIVE_INFINITY >> 0.0);
write(Number.POSITIVE_INFINITY >> -0.0);
write(Number.POSITIVE_INFINITY >> +0.0);
write(Number.POSITIVE_INFINITY >> 1);
write(Number.POSITIVE_INFINITY >> 10);
write(Number.POSITIVE_INFINITY >> 10.0);
write(Number.POSITIVE_INFINITY >> 10.1);
write(Number.POSITIVE_INFINITY >> -1);
write(Number.POSITIVE_INFINITY >> -10);
write(Number.POSITIVE_INFINITY >> -10.0);
write(Number.POSITIVE_INFINITY >> -10.1);
write(Number.POSITIVE_INFINITY >> Number.MAX_VALUE);
write(Number.POSITIVE_INFINITY >> Number.MIN_VALUE);
write(Number.POSITIVE_INFINITY >> Number.NaN);
write(Number.POSITIVE_INFINITY >> Number.POSITIVE_INFINITY);
write(Number.POSITIVE_INFINITY >> Number.NEGATIVE_INFINITY);
write(Number.POSITIVE_INFINITY >> new Number(NaN));
write(Number.POSITIVE_INFINITY >> new Number(+0));
write(Number.POSITIVE_INFINITY >> new Number(-0));
write(Number.POSITIVE_INFINITY >> new Number(0));
write(Number.POSITIVE_INFINITY >> new Number(0.0));
write(Number.POSITIVE_INFINITY >> new Number(-0.0));
write(Number.POSITIVE_INFINITY >> new Number(+0.0));
write(Number.POSITIVE_INFINITY >> new Number(1));
write(Number.POSITIVE_INFINITY >> new Number(10));
write(Number.POSITIVE_INFINITY >> new Number(10.0));
write(Number.POSITIVE_INFINITY >> new Number(10.1));
write(Number.POSITIVE_INFINITY >> new Number(-1));
write(Number.POSITIVE_INFINITY >> new Number(-10));
write(Number.POSITIVE_INFINITY >> new Number(-10.0));
write(Number.POSITIVE_INFINITY >> new Number(-10.1));
write(Number.POSITIVE_INFINITY >> new Number(Number.MAX_VALUE));
write(Number.POSITIVE_INFINITY >> new Number(Number.MIN_VALUE));
write(Number.POSITIVE_INFINITY >> new Number(Number.NaN));
write(Number.POSITIVE_INFINITY >> new Number(Number.POSITIVE_INFINITY));
write(Number.POSITIVE_INFINITY >> new Number(Number.NEGATIVE_INFINITY));
write(Number.POSITIVE_INFINITY >> '');
write(Number.POSITIVE_INFINITY >> 0xa);
write(Number.POSITIVE_INFINITY >> 04);
write(Number.POSITIVE_INFINITY >> 'hello');
write(Number.POSITIVE_INFINITY >> 'hel' + 'lo');
write(Number.POSITIVE_INFINITY >> String(''));
write(Number.POSITIVE_INFINITY >> String('hello'));
write(Number.POSITIVE_INFINITY >> String('h' + 'ello'));
write(Number.POSITIVE_INFINITY >> new String(''));
write(Number.POSITIVE_INFINITY >> new String('hello'));
write(Number.POSITIVE_INFINITY >> new String('he' + 'llo'));
write(Number.POSITIVE_INFINITY >> new Object());
write(Number.POSITIVE_INFINITY >> new Object());
write(Number.POSITIVE_INFINITY >> [1, 2, 3]);
write(Number.POSITIVE_INFINITY >> [1 ,2 , 3]);
write(Number.POSITIVE_INFINITY >> new Array(3));
write(Number.POSITIVE_INFINITY >> Array(3));
write(Number.POSITIVE_INFINITY >> new Array(1 ,2 ,3));
write(Number.POSITIVE_INFINITY >> Array(1));
write(Number.POSITIVE_INFINITY >> foo);
write(Number.NEGATIVE_INFINITY >> undefined);
write(Number.NEGATIVE_INFINITY >> null);
write(Number.NEGATIVE_INFINITY >> true);
write(Number.NEGATIVE_INFINITY >> false);
write(Number.NEGATIVE_INFINITY >> Boolean(true));
write(Number.NEGATIVE_INFINITY >> Boolean(false));
write(Number.NEGATIVE_INFINITY >> new Boolean(true));
write(Number.NEGATIVE_INFINITY >> new Boolean(false));
write(Number.NEGATIVE_INFINITY >> NaN);
write(Number.NEGATIVE_INFINITY >> +0);
write(Number.NEGATIVE_INFINITY >> -0);
write(Number.NEGATIVE_INFINITY >> 0);
write(Number.NEGATIVE_INFINITY >> 0.0);
write(Number.NEGATIVE_INFINITY >> -0.0);
write(Number.NEGATIVE_INFINITY >> +0.0);
write(Number.NEGATIVE_INFINITY >> 1);
write(Number.NEGATIVE_INFINITY >> 10);
write(Number.NEGATIVE_INFINITY >> 10.0);
write(Number.NEGATIVE_INFINITY >> 10.1);
write(Number.NEGATIVE_INFINITY >> -1);
write(Number.NEGATIVE_INFINITY >> -10);
write(Number.NEGATIVE_INFINITY >> -10.0);
write(Number.NEGATIVE_INFINITY >> -10.1);
write(Number.NEGATIVE_INFINITY >> Number.MAX_VALUE);
write(Number.NEGATIVE_INFINITY >> Number.MIN_VALUE);
write(Number.NEGATIVE_INFINITY >> Number.NaN);
write(Number.NEGATIVE_INFINITY >> Number.POSITIVE_INFINITY);
write(Number.NEGATIVE_INFINITY >> Number.NEGATIVE_INFINITY);
write(Number.NEGATIVE_INFINITY >> new Number(NaN));
write(Number.NEGATIVE_INFINITY >> new Number(+0));
write(Number.NEGATIVE_INFINITY >> new Number(-0));
write(Number.NEGATIVE_INFINITY >> new Number(0));
write(Number.NEGATIVE_INFINITY >> new Number(0.0));
write(Number.NEGATIVE_INFINITY >> new Number(-0.0));
write(Number.NEGATIVE_INFINITY >> new Number(+0.0));
write(Number.NEGATIVE_INFINITY >> new Number(1));
write(Number.NEGATIVE_INFINITY >> new Number(10));
write(Number.NEGATIVE_INFINITY >> new Number(10.0));
write(Number.NEGATIVE_INFINITY >> new Number(10.1));
write(Number.NEGATIVE_INFINITY >> new Number(-1));
write(Number.NEGATIVE_INFINITY >> new Number(-10));
write(Number.NEGATIVE_INFINITY >> new Number(-10.0));
write(Number.NEGATIVE_INFINITY >> new Number(-10.1));
write(Number.NEGATIVE_INFINITY >> new Number(Number.MAX_VALUE));
write(Number.NEGATIVE_INFINITY >> new Number(Number.MIN_VALUE));
write(Number.NEGATIVE_INFINITY >> new Number(Number.NaN));
write(Number.NEGATIVE_INFINITY >> new Number(Number.POSITIVE_INFINITY));
write(Number.NEGATIVE_INFINITY >> new Number(Number.NEGATIVE_INFINITY));
write(Number.NEGATIVE_INFINITY >> '');
write(Number.NEGATIVE_INFINITY >> 0xa);
write(Number.NEGATIVE_INFINITY >> 04);
write(Number.NEGATIVE_INFINITY >> 'hello');
write(Number.NEGATIVE_INFINITY >> 'hel' + 'lo');
write(Number.NEGATIVE_INFINITY >> String(''));
write(Number.NEGATIVE_INFINITY >> String('hello'));
write(Number.NEGATIVE_INFINITY >> String('h' + 'ello'));
write(Number.NEGATIVE_INFINITY >> new String(''));
write(Number.NEGATIVE_INFINITY >> new String('hello'));
write(Number.NEGATIVE_INFINITY >> new String('he' + 'llo'));
write(Number.NEGATIVE_INFINITY >> new Object());
write(Number.NEGATIVE_INFINITY >> new Object());
write(Number.NEGATIVE_INFINITY >> [1, 2, 3]);
write(Number.NEGATIVE_INFINITY >> [1 ,2 , 3]);
write(Number.NEGATIVE_INFINITY >> new Array(3));
write(Number.NEGATIVE_INFINITY >> Array(3));
write(Number.NEGATIVE_INFINITY >> new Array(1 ,2 ,3));
write(Number.NEGATIVE_INFINITY >> Array(1));
write(Number.NEGATIVE_INFINITY >> foo);
write(new Number(NaN) >> undefined);
write(new Number(NaN) >> null);
write(new Number(NaN) >> true);
write(new Number(NaN) >> false);
write(new Number(NaN) >> Boolean(true));
write(new Number(NaN) >> Boolean(false));
write(new Number(NaN) >> new Boolean(true));
write(new Number(NaN) >> new Boolean(false));
write(new Number(NaN) >> NaN);
write(new Number(NaN) >> +0);
write(new Number(NaN) >> -0);
write(new Number(NaN) >> 0);
write(new Number(NaN) >> 0.0);
write(new Number(NaN) >> -0.0);
write(new Number(NaN) >> +0.0);
write(new Number(NaN) >> 1);
write(new Number(NaN) >> 10);
write(new Number(NaN) >> 10.0);
write(new Number(NaN) >> 10.1);
write(new Number(NaN) >> -1);
write(new Number(NaN) >> -10);
write(new Number(NaN) >> -10.0);
write(new Number(NaN) >> -10.1);
write(new Number(NaN) >> Number.MAX_VALUE);
write(new Number(NaN) >> Number.MIN_VALUE);
write(new Number(NaN) >> Number.NaN);
write(new Number(NaN) >> Number.POSITIVE_INFINITY);
write(new Number(NaN) >> Number.NEGATIVE_INFINITY);
write(new Number(NaN) >> new Number(NaN));
write(new Number(NaN) >> new Number(+0));
write(new Number(NaN) >> new Number(-0));
write(new Number(NaN) >> new Number(0));
write(new Number(NaN) >> new Number(0.0));
write(new Number(NaN) >> new Number(-0.0));
write(new Number(NaN) >> new Number(+0.0));
write(new Number(NaN) >> new Number(1));
write(new Number(NaN) >> new Number(10));
write(new Number(NaN) >> new Number(10.0));
write(new Number(NaN) >> new Number(10.1));
write(new Number(NaN) >> new Number(-1));
write(new Number(NaN) >> new Number(-10));
write(new Number(NaN) >> new Number(-10.0));
write(new Number(NaN) >> new Number(-10.1));
write(new Number(NaN) >> new Number(Number.MAX_VALUE));
write(new Number(NaN) >> new Number(Number.MIN_VALUE));
write(new Number(NaN) >> new Number(Number.NaN));
write(new Number(NaN) >> new Number(Number.POSITIVE_INFINITY));
write(new Number(NaN) >> new Number(Number.NEGATIVE_INFINITY));
write(new Number(NaN) >> '');
write(new Number(NaN) >> 0xa);
write(new Number(NaN) >> 04);
write(new Number(NaN) >> 'hello');
write(new Number(NaN) >> 'hel' + 'lo');
write(new Number(NaN) >> String(''));
write(new Number(NaN) >> String('hello'));
write(new Number(NaN) >> String('h' + 'ello'));
write(new Number(NaN) >> new String(''));
write(new Number(NaN) >> new String('hello'));
write(new Number(NaN) >> new String('he' + 'llo'));
write(new Number(NaN) >> new Object());
write(new Number(NaN) >> new Object());
write(new Number(NaN) >> [1, 2, 3]);
write(new Number(NaN) >> [1 ,2 , 3]);
write(new Number(NaN) >> new Array(3));
write(new Number(NaN) >> Array(3));
write(new Number(NaN) >> new Array(1 ,2 ,3));
write(new Number(NaN) >> Array(1));
write(new Number(NaN) >> foo);
write(new Number(+0) >> undefined);
write(new Number(+0) >> null);
write(new Number(+0) >> true);
write(new Number(+0) >> false);
write(new Number(+0) >> Boolean(true));
write(new Number(+0) >> Boolean(false));
write(new Number(+0) >> new Boolean(true));
write(new Number(+0) >> new Boolean(false));
write(new Number(+0) >> NaN);
write(new Number(+0) >> +0);
write(new Number(+0) >> -0);
write(new Number(+0) >> 0);
write(new Number(+0) >> 0.0);
write(new Number(+0) >> -0.0);
write(new Number(+0) >> +0.0);
write(new Number(+0) >> 1);
write(new Number(+0) >> 10);
write(new Number(+0) >> 10.0);
write(new Number(+0) >> 10.1);
write(new Number(+0) >> -1);
write(new Number(+0) >> -10);
write(new Number(+0) >> -10.0);
write(new Number(+0) >> -10.1);
write(new Number(+0) >> Number.MAX_VALUE);
write(new Number(+0) >> Number.MIN_VALUE);
write(new Number(+0) >> Number.NaN);
write(new Number(+0) >> Number.POSITIVE_INFINITY);
write(new Number(+0) >> Number.NEGATIVE_INFINITY);
write(new Number(+0) >> new Number(NaN));
